home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Skunkware 5
/
Skunkware 5.iso
/
src
/
X11
/
wais
/
waisgate
/
ustubs.c
< prev
next >
Wrap
C/C++ Source or Header
|
1995-05-09
|
4KB
|
163 lines
/* WIDE AREA INFORMATION SERVER SOFTWARE
No guarantees or restrictions. See the readme file for the full standard
disclaimer.
4.14.90 Harry Morris, morris@think.com
*/
#ifndef lint
static char *RCSid = "$Header: /tmp_mnt/net/quake/proj/wais/wais-8-b5/ir/RCS/ustubs.c,v 1.4 92/05/06 17:35:13 jonathan Exp $";
#endif
/* Change log:
* $Log: ustubs.c,v $
* Revision 1.4 92/05/06 17:35:13 jonathan
* Modified some #if's for NeXT and Mach.
*
* Revision 1.3 92/03/06 11:08:49 jonathan
* fixed incompatible return type error in HP version of getwd. Thanks to
* cshotton@oac.hsc.uth.tmc.edu.
*
* Revision 1.2 92/02/12 13:54:29 jonathan
* Added "$Log" so RCS will put the log message in the header
*
*
*/
/*----------------------------------------------------------------------*/
/* stubs for silly non-ansi c compilers */
/*----------------------------------------------------------------------*/
#include "ustubs.h"
#include "cutil.h" /* for substrcmp and NULL */
/*----------------------------------------------------------------------*/
/* believe it or not, HP does not have bzero or bcopy */
#ifdef hpux
void bzero(ptr, len)
char *ptr;
int len;
{
long count;
for (count = 0; count < len; count++){
*(char*)(ptr + count) = 0;
}
}
char *bcopy(src, dest, len)
char *dest, *src;
int len;
{
return((char*)memmove(dest, src, len));
}
char *getwd(pathname)
char *pathname;
{
return((char*)getcwd(pathname, MAX_FILENAME_LEN));
}
#endif
#ifdef SYSV
#include <prototypes.h> /* may be XENIX dependent! */
char *
getwd(pathname)
char *pathname;
{
return(getcwd(pathname, MAX_FILENAME_LEN));
}
#endif /* def SYSV */
/*----------------------------------------------------------------------*/
#ifndef ANSI_LIKE /* memmove is an ANSI function not defined by K&R */
#ifndef hpux /* but HP defines it */
void*
memmove(str1,str2,n)
void* str1;
void* str2;
size_t n;
{
#ifdef M_XENIX
memcpy((char*)str2,(char*)str1,(long)n); /* hope it works! */
#else /* ndef M_XENIX */
bcopy((char*)str2,(char*)str1,(long)n);
#endif /* ndef M_XENIX */
return(str1);
}
#endif /* ndef hpux */
#else /* ansi is defined */
#ifdef __GNUC__ /* we are ansi like, are we gcc */
#if !(defined(NeXT) || defined(Mach)) /* and we are not on a next ! */
void*
memmove(str1,str2,n)
void* str1;
void* str2;
size_t n;
{
bcopy((char*)str2,(char*)str1,(long)n);
return(str1);
}
#endif /* not NeXT or Mach */
#endif /* __GNUC__ */
#endif /* else ndef ANSI_LIKE */
/*----------------------------------------------------------------------*/
#ifndef ANSI_LIKE
/* atoi is not defined k&r. copied from the book */
long atol(s)
char *s;
{
long i, n, sign;
for(i=0; s[i]==' ' || s[i]== 'n' || s[i]=='t'; i++)
; /* skip white space */
sign = 1;
if (s[i] == '+' || s[i] == '-')
sign = (s[i++]=='+') ? 1 : -1;
for (n=0; s[i] >= '0' && s[i] <= '9'; i++)
n= 10 * n + s[i] - '0';
return(sign * n);
}
/*----------------------------------------------------------------------*/
char *strstr(src,sub)
char *src;
char *sub;
{
/* this is a poor implementation until the ANSI version catches on */
char *ptr;
for(ptr = src; (long)ptr <= (long)src + strlen(src) - strlen(sub); ptr++){
if(substrcmp(ptr, sub))
return(ptr);
}
return(NULL);
}
/*----------------------------------------------------------------------*/
int remove(filename)
char *filename;
{
return(unlink(filename));
}
/*----------------------------------------------------------------------*/
#endif /* ndef ANSI_LIKE */